Replace Subclass with Delegate
概述
用委托替换子类是一种重构技术,在合适的地方使用组合而不是继承来实现功能。
关键内容
- 适用场景:
- 继承用得不对
- 需要更灵活的解决方案
-
继承关系过于僵化
-
实施步骤:
- 创建一个空的委托类
- 在宿主类中加一个持有委托的字段
- 在宿主类构造委托
- 把功能迁移到委托类
- 每次迁移后测试
-
用委托替代继承
-
实施效果:
- 提供比继承更灵活的设计
- 在运行时可以动态改变行为
- 遵循组合优于继承的原则
来源
- 重构目录 — refactoring-catalog.md
- [[]] —